package com.ruoyi.gateway.config;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType;
import org.springframework.web.reactive.function.server.RequestPredicates;
import org.springframework.web.reactive.function.server.RouterFunction;
import org.springframework.web.reactive.function.server.RouterFunctions;
import com.ruoyi.gateway.handler.ValidateCodeHandler;

/**
 * 路由配置信息
 * 
 * @author ruoyi
 */
@Configuration
public class RouterFunctionConfiguration
{
    @Autowired
    //ValidateCodeHandler可能是一个自定义的类或函数，其功能可能是用于处理验证码的验证。
    // 它可能接受输入的验证码和用户输入的验证码，然后比较它们是否匹配，并返回验证结果。
    // 此外，ValidateCodeHandler可能会在验证过程中执行其他操作，如记录日志或更新计数器。由于上下文缺失，无法确定ValidateCodeHandler确切的实现和用途。
    private ValidateCodeHandler validateCodeHandler;

    @SuppressWarnings("rawtypes")
    @Bean
    //路由方式
    //RouterFunction是Spring Webflux框架中的一种声明式路由方式，它允许我们通过Java代码来定义路由规则，而不是通过传统的配置文件。
    public RouterFunction routerFunction()
    {
        return RouterFunctions.route(
                RequestPredicates.GET("/code").and(RequestPredicates.accept(MediaType.TEXT_PLAIN)),
                validateCodeHandler);
    }
}
